//Kéki
package digitrencer;

/**
 * Az alkatrészeket (kapuk, kapcsolók, stb.) összefoglaló osztály.
 * @author Kéki
 */
public abstract class Element {

    /**
     * Az alkatrész kimeneteire csatlakozó vezetékek referenciáit tárolja.
     */
    protected Wire[] out;
    /**
     * Az alkatrész bemeneteire csatlakozó vezetékek referenciáit tárolja.
     */
    protected Wire[] in;
    /**
     * Az alkatrész egyedi azonosítója. A konzolra való kiíratáshoz szükséges.
     */
    public int id;

    Element(int id, Wire[] inputs, Wire[] outputs) {
        this.id = id;
        out = outputs;
        in = inputs;
    }

    /**
     * A bemenetek alapján az alkatrész beállítja a kimenetein lévő vezetékek értékét.
     */
    public abstract void run();
}
